home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung / Power-Programmierung (Tewi)(1994).iso / magazine / pctchnqs / 1990 / number6 / untsr.c < prev   
Text File  |  1990-11-08  |  1KB  |  29 lines

  1. #pragma inline
  2. #include <dos.h>
  3.  
  4. unsigned getpsp(void)           /* getpsp() returns segment */
  5. {                               /* value of the current PSP */
  6.   if (_osmajor < 3) _AH = 0x51; /* pointer.  Service 0x62   */
  7.   else _AH = 0x62;              /* is used preferentially,  */
  8.   asm int 21h                   /* but is unavailable to    */
  9.   _AX = _BX;                    /* versions before DOS 3.0  */
  10. }                                                        
  11.  
  12. void setpsp(unsigned segment)   /* setpsp() sets DOS's      */
  13. {                               /* current PSP pointer to   */
  14.   _AH = 0x50;                   /* segment value passed.    */
  15.   _BX = segment;
  16.   asm int 21h
  17. }
  18.  
  19. int freemem(unsigned segment)   /* freemem() frees memory   */
  20. {                               /* beginning at the segment */
  21.   _AH = 0x49;                   /* value passed.  Current   */
  22.   _ES = segment;                /* PSP pointer must aggree  */
  23.   asm int 21h                   /* with owner of block to   */
  24.   asm jc nok                    /* succeed.  Returns zero   */
  25.   _AX = 0;                      /* if successful, DOS error */
  26. nok:                            /* code if unsuccessful.    */
  27.   ;
  28. }
  29.